package com.xzx.mapper;

import com.xzx.po.RolePO;
import com.xzx.po.UserPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 * @author xinzhixuan
 * @version 1.0
 * @date 2025/8/18 14:08
 */
@Mapper
public interface RoleMapper {


    int count(@Param("query") String query);

    List<RolePO> list(@Param("query") String query,
                      @Param("limit") int limit,
                      @Param("offset") int offset);

    void insert(RolePO rolePO);

    void delete(@Param("ids") List<Long> ids);

    RolePO getById(@Param("id") Long id);

    void update(RolePO rolePO);

    List<RolePO> selectAll();

    List<RolePO> selectByUserId(@Param("userId") Long userId);

    void doAssign(@Param("userId") Integer userId,
                  @Param("roleIds") List<Long> roleIds);

    void doUnassign(@Param("userId") Integer userId,
                    @Param("roleIds") List<Long> roleIds);

    void deleteByUserId(@Param("userIds") List<Integer> userIds);
}
